There are image processing apparatuses in recent years that have a power saving function for transitioning to a “sleep state” in which the device operates at low power with power supply restricted to part of the device, in the case where the device is non-operational for longer than a fixed period. Also, with the widespread use of network technology, it is common for image processing apparatuses to periodically perform exchange of data between device and host utilizing a network. In order to process data via a network in the case where the device is in the “sleep state”, the device needs to be transitioned to a “non-sleep state”. Accordingly, in an environment where data is frequently exchanged over a network, the time spent in the “sleep state” will be short.
In order to resolving this, Japanese Patent Laid-Open No. 2006-259906 proposes a technique of installing a plurality of CPUs in the device, and performing processing with a main CPU when not in sleep, while performing the processing of the main CPU by proxy with a sub CPU having low power consumption when in sleep. Furthermore, a technique of installing a protocol stack in the sub CPU, in order to expand the processing that the sub CPU can perform by proxy following the increased diversity and complexity of network protocols, has also been conceived.
On the other hand, in recent years, following the widespread use of security functions for preventing eavesdropping and falsification of data flowing through a network, systems are being used that allow devices to perform complex negotiations with communication partners, and to perform encryption and decryption based on the result of the negotiations. This has lead to increasing opportunities for security communication to also be used in the exchange of network data periodically exchanged between device and host. Means has also been conceived for performing the processing of the main CPU by proxy at the time of such security communication, by installing a security function in the sub CPU, and exchanging information required for security communication with the main CPU. Following the widespread use of security technology and improvements in power saving technology described above, it is desired to perform data processing while maintaining the low power state of the device, even when exchange of data between device and host on a network is performed by security communication.
However, the following problems exist with the conventional technology. With a system in which a protocol stack is installed in a sub CPU, as in the above conventional technology, the problem arises that, in the case where the device returns from the sleep state after receiving a network packet, the main CPU is not able to process the received packet appropriately. This is mainly caused by the protocol stack of the sub CPU removing information such as the IP header and Ethernet header, and transferring only the body of the packet to the main CPU. Thus, since required header information is not attached to the received packet, the main CPU is not able to perform appropriate processing.
In addition, there is a problem when security communication is performed in that, even if the sub CPU transfers a received packet to the main CPU correctly, the packet will constitute an unauthorized sequence in subsequent security communication, preventing communication from being performed normally. This is mainly caused by the presence of information for certifying communication in security communication, and the sub CPU transferring updated information to the main CPU. Thus, in the main CPU, inconsistencies occur between the received packet and information required in security communication, preventing the subsequent communication sequence from being performed normally.